package cn.stylefeng.guns.modular.forecastLoadInformation.pojo.request;

import cn.stylefeng.roses.kernel.rule.pojo.request.BaseRequest;
import cn.stylefeng.roses.kernel.rule.annotation.ChineseDescription;
import lombok.Data;
import lombok.EqualsAndHashCode;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;

import java.util.Date;
import java.math.BigDecimal;

/**
 * 负荷信息预测信息表，记录每天96个时间点的电网运行预测数据封装类
 *
 * @author 我是谭先生🐻
 * @date 2025/03/14 10:41
 */
@EqualsAndHashCode(callSuper = true)
@Data
public class QyuanPowerSdGridForecastRequest extends BaseRequest {

    /**
     * 电网运行预测信息ID
     */
    @NotNull(message = "电网运行预测信息ID不能为空", groups = {edit.class, delete.class})
    @ChineseDescription("电网运行预测信息ID")
    private Integer id;

    /**
     * 日期
     */
    @ChineseDescription("日期")
	private String usageDate;

    /**
     * 时间点
     */
    @ChineseDescription("时间点")
    private Integer timePoint;

    /**
     * 时间段
     */
    @ChineseDescription("时间段")
    private String timeSlot;

    /**
     * 直调负荷
     */
    @ChineseDescription("直调负荷")
    private BigDecimal powerDirectLoad;

    /**
     * 地方电厂发电总加
     */
    @ChineseDescription("地方电厂发电总加")
    private BigDecimal powerLocalGeneration;

    /**
     * 联络线受电负荷
     */
    @ChineseDescription("联络线受电负荷")
    private BigDecimal powerInterconnectionLoad;

    /**
     * 风电总加
     */
    @ChineseDescription("风电总加")
    private BigDecimal powerWindGeneration;

    /**
     * 光伏总加
     */
    @ChineseDescription("光伏总加")
    private BigDecimal powerSolarGeneration;

    /**
     * 非市场化核电总加
     */
    @ChineseDescription("非市场化核电总加")
    private BigDecimal powerNuclearGeneration;

    /**
     * 自备机组总加
     */
    @ChineseDescription("自备机组总加")
    private BigDecimal powerSelfGeneration;

    /**
     * 实验机组总加
     */
    @ChineseDescription("实验机组总加")
    private BigDecimal powerExperimentalGeneration;

    /**
     * 创建时间
     */
    @NotNull(message = "创建时间不能为空", groups = {add.class, edit.class})
    @ChineseDescription("创建时间")
	private String createTime;

    /**
     * 修改时间
     */
    @NotNull(message = "修改时间不能为空", groups = {add.class, edit.class})
    @ChineseDescription("修改时间")
	private String updateTime;

}
